iT邦幫忙

DAY 12
1

Java 學習筆記系列 第 12

Java 學習筆記 [12] 物件與類別

  • 分享至 

  • xImage
  •  

大家午安喔,我想大家都跑出去惹!

小菜鳥只能默默的待在家中寫寫文章,覺得 我也想出去玩!

好啦,以上都是廢話。

今天想輕鬆點,說點比較概念性的東西,

物件導向是以人類生活世界的思考模式為基礎,

應用到各種領域的一種技術!

它為電腦資訊帶來革命性的突破,

設計程式的世界和人類的真實世界一樣,也有物件。

因此利用物件來撰寫程式,

這就是物件導向程式設計(Object Oriented Progamming,簡單OOP),

目前OOP已經成為設計程式的主流。

生活中所有東西都可以叫做物件(object),

譬如:人、狗、車子、電腦、手機...等等,都可以說是物件,

甚至肉眼看不見的細小物體,也可以算是物件。

若要能辨識不同的物件,

仍然需要藉由物件的屬性(Attributes)行為(Behaviosr)

這兩項性質來描述每個物件的特徵。

**類別(Class)**是物件的模子,可以用模子產生出很多物件,

類別中可以定義類別的資料成員(屬性)和方法成員(行為),

因此類別可以用來描述物件的統稱。

OOP是用類別(Class)來建立物件(object)

因此在建立物件之前要先定義類別。

如果要定義汽車,以油箱為例:

油箱最多載油量、平均耗油量兩個屬性,

估計一次滿油時可以行駛最長距離是多少的方法、函式,

把最多載油量、平均耗油量和行駛最長距離的方法封裝起來,

就成了一個汽車類別。

汽車類別可以建立出載油量、耗油量不同的FerrariLamborghini物件,

而這兩個不同的汽車物件,加滿油行駛的距離自然是不同的。

public class Ccar                       //汽車類別
{
  public double gas, tbo;        //宣告最多載油量, 平均耗油量
  public double max_dist = 0;           //加滿油可行駛最長距離

  public void MaxDist()          //計算可行駛最長距離
  {
    max_dist = gas * tbo;
  }

  public double Dist(double oil)        //一般加油可行駛距離
  {
    return oil * tbo;
  }

}

public static void main(String[] args)  
  {
    Ccar Ferrari;                            //宣告Ferrari物件
    Ferrari = new Ccar();                    //建立Ferrari物件
    Ferrari.gas = 40.7;                      //設定Ferrari物件的屬性值
    Ferrari.tbo = 13.6;
    Ferrari.MaxDist();                       //呼叫Ferrari物件的方法
    double distance = Ferrari.Dist(10);      //呼叫Ferrari物件的方法,並取得傳回值

    Ccar Lamborghini = new Ccar();               //宣告並建立Lamborghini物件
    Lamborghini.gas = 60;                        //設定Lamborghini物件的屬性值
    Lamborghini.tbo = 9.5;

    System.out.println(" Ferrari汽車資訊:");
    System.out.println("最大載油量:" + Ferrari.gas + " L");
    System.out.println("平均耗油量:" + Ferrari.tbo + " km/L");
    System.out.println("加滿油可行駛 " + Ferrari.max_dist + " km");
    System.out.println("加油10L可行駛 " + distance + " km");
  }
}

打著Ferrari、Lamborghini,開始著癡心妄想,覺得 幸福。


上一篇
Java 學習筆記 [11] 遞迴
下一篇
Java 學習筆記 [13] 執行緒
系列文
Java 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言